package app.vendorportal.api.data.request;

import app.vendorportal.api.data.QuerySKU;

import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author Bribin
 */
@XmlRootElement(name = "query-delivery-info-request")
@XmlAccessorType(XmlAccessType.FIELD)
@Deprecated
public class QueryDeliveryInfoRequest {

    @XmlElementWrapper(name = "query-sku-list")
    @XmlElement(name = "query-sku")
    private final List<QuerySKU> querySKUs = new ArrayList<QuerySKU>();

    @XmlElement(name = "order-date")
    @NotNull(message = "order date is required")
    private Date orderDate;

    @XmlElement(name = "zip-code")
    @NotEmpty(message = "zip code is required")
    private String zipCode;

    @XmlElement(name = "ignore-order-limit")
    private Boolean ignoreOrderLimit;

    public List<QuerySKU> getQuerySKUs() {
        return querySKUs;
    }

    public Date getOrderDate() {
        return orderDate;
    }

    public void setOrderDate(Date orderDate) {
        this.orderDate = orderDate;
    }

    public String getZipCode() {
        return zipCode;
    }

    public void setZipCode(String zipCode) {
        this.zipCode = zipCode;
    }

    public Boolean getIgnoreOrderLimit() {
        return ignoreOrderLimit;
    }

    public void setIgnoreOrderLimit(Boolean ignoreOrderLimit) {
        this.ignoreOrderLimit = ignoreOrderLimit;
    }

}
